The present invention relates to cryptographic systems and in particular to systems and methods for encrypting and/or perturbing graphics data in a graphics processing pipeline.
Computer-based image generating systems for generating and manipulating graphics data are known in the art. Graphics data typically provides a two-dimensional or three-dimensional geometric model of one or more objects (e.g., an airplane, a car, a building); the model generally includes coordinates, colors, and other properties of a group of related “primitives,” which are typically triangles or other simple polygons. To display the object on a conventional pixel-based display device, the geometry data is transformed to a viewing coordinate system corresponding to the display area, then scan-converted to color values for each pixel of the display based on which primitives are visible in each pixel region. Other operations (e.g., lighting transformations and texture mapping) may also be included in the rendering sequence, before and/or after the viewing transformation and scan conversion.
In general, geometry data provides more information about the objects being rendered than does pixel data. For instance, the geometry data may provide a complete three-dimensional model of an object at a high level of detail, while the pixel data provides only color values corresponding to portions of the object that are visible in a particular view.
In many instances, generation of geometry data and subsequent processing are performed by separate components or devices. For instance, geometry data is often generated by application programs running on a central processor of a computing system (e.g., a desktop computer), while rendering is performed by a dedicated graphics processing subsystem. Alternatively, geometry data may be generated by an application program and transferred over a network to another device that generates displayable pixel data.
In conventional systems, such transfers of geometry data are generally not secure. Network traffic can be monitored and data intercepted. Even within a single computer system (such as a typical desktop computer with a graphics card), traffic on the system bus between the central processor and the graphics card can be intercepted using various well-known tracing tools. Thus, unauthorized users can obtain geometry data, not just the displayable pixel data, thereby gaining information that the creator of the data may not want to share.
As geometry data and modeling techniques become more sophisticated, this lack of security becomes an increasing concern. For example, computer-aided design (CAD) systems can be used to generate very exact geometry models of valuable products (e.g., an aileron for an airplane). An unauthorized party who obtains such a model may be able to obtain trade secrets or other confidential information by analyzing the geometry data. Such risks make creators of high-precision geometry data reluctant to share it.
In addition, the risk of providing too much information makes it difficult for creators to share geometry data with parties who need at least partial information. For instance, a manufacturer soliciting bids from a supplier for a particular part needs to give the supplier enough information about the part to enable the supplier to estimate the cost of making it, but the manufacturer generally does not want to provide exact specifications until a contract with a non-disclosure provision has been signed. CAD-generated geometry data that conforms precisely to the specifications is unsuitable for this purpose. Instead, a new, lower-precision model must be created, often at considerable effort and/or expense. There may be other potential applications of the CAD-generated data as well, such as documentation, technical support for field engineers, etc., each having its own conflicting requirements in terms of which details should or should not be made available. Thus, a product may be modeled several different times, with each new model incurring additional overhead. Further, if the product design changes, some or all of the models may have to be regenerated. This is clearly inefficient.
Therefore, systems and methods for controlling the sharing of geometry data would be desirable.